﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Description;
using Common.Log;
using System.Data;
using ExtBusiness.Interface;
using WF_Business;
using System.Configuration;
using ChBusiness.Wsbs;
using ChBusiness.InterfaceClass;

/// <summary>
/// 同网上办事大厅的申报信息查询接口
/// </summary>
[WebService(Namespace = "bjcj")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务，请取消注释以下行。 
// [System.Web.Script.Services.ScriptService]

//以下代码专门针对java调用
[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
public class InterfaceService : System.Web.Services.WebService
{
    public InterfaceService()
    {
        //如果使用设计的组件，请取消注释以下行 
        //InitializeComponent(); 
    }

    /// <summary>
    /// 获取申报信息
    /// </summary>
    /// <param name="type">申报类型(0:尚未提交事项;1:当前办理事项;2:补正补齐办理事项;3:通过办理事项;5.不予受理事项;6.未通过办理事项;)</param>
    /// <param name="iid">业务编号</param>
    /// <param name="userId">申报人</param>
    /// <param name="ywtype">业务类型</param>
    /// <param name="startpage">开始页码</param>
    /// <param name="endpage">结束页码</param>
    /// <returns></returns>
    [WebMethod(Description = " 1.type条件为空是针对所有申报类型的查询;<br/>2.申报类型type(0:尚未提交事项;1:当前办理事项;2:补正补齐办理事项;3:通过办理事项;5.不予受理事项;6.未通过办理事项);<br/>3.type为申报类型,iid为申请编号，userId为用户ID,startpage条件为开始页码;endpage为结束页码,flowname为业务类型.<br/>4.flowname为业务类型:（1.采用国际坐标系，2.建立相对独立的平面坐标系统，3.外国来华测绘申请，4.对外提供基础测绘成果，5.国家涉密基础测绘成果使用申报，6.地图审核(即送即审),7.永久性测量标志拆迁审批）.<br/>5.第二项输入相应编号(申报类型),第四项需要输入相应的中文类型(业务类型);所有参数条件可搭配使用.")]
    public string GetShenbaoInformation(string type, string iid, string userId, string flowname, string unitsid, int startpage, int endpage)
    {
        return SerialInstance.Instance.GetAllShenBaoInfo(type, iid, userId, flowname, unitsid, startpage, endpage);
    }

    [WebMethod(Description = " 1.type条件为空是针对所有申报类型的查询;<br/>2.申报类型type(0:尚未提交事项;1,3:当前办理事项;-1:补正补齐办理事项;2:通过办理事项;-3.不予受理事项;-4.未通过办理事项;);<br/>3.type为申报类型,iid为申请编号，userId为用户ID,startpage条件为开始页码;endpage为结束页码,flowname为业务类型.<br/>4.flowname为业务类型:（1.采用国际坐标系，2.建立相对独立的平面坐标系统，3.外国来华测绘申请，4.对外提供基础测绘成果，5.国家涉密基础测绘成果使用申报，6.地图审核(即送即审),7.永久性测量标志拆迁审批）.<br/>5.第二项输入相应编号(申报类型),第四项需要输入相应的中文类型(业务类型);所有参数条件可搭配使用.")]
    public string GetShenbaoInformationNew(string type, string iid, string userId, string flowname, string unitsid, int startpage, int endpage)
    {
        return SerialInstance.Instance.GetAllShenBaoInfoNew(type, iid, userId, flowname,unitsid, startpage, endpage);
    }

    [WebMethod(Description = " 1.type条件为空是针对所有申报类型的查询;<br/>2.申报类型type(0:尚未提交事项;1,3:当前办理事项;-1:补正补齐办理事项;2:通过办理事项;-3.不予受理事项;-4.未通过办理事项;);<br/>3.type为申报类型,iid为申请编号，userId为用户ID,startpage条件为开始页码;endpage为结束页码,flowname为业务类型.<br/>4.flowname为业务类型:（1.采用国际坐标系，2.建立相对独立的平面坐标系统，3.外国来华测绘申请，4.对外提供基础测绘成果，5.国家涉密基础测绘成果使用申报，6.地图审核(即送即审),7.永久性测量标志拆迁审批）.<br/>5.第二项输入相应编号(申报类型),第四项需要输入相应的中文类型(业务类型);所有参数条件可搭配使用.")]
    public string GetDtshInfo(string type, string iid, string userId, string unitsid, string tm,string sth,string slbh,string yt, int startpage, int endpage)
    {
        return SerialInstance.Instance.GetDtshInfo(type, iid, userId, unitsid, tm,sth,slbh,yt,startpage, endpage);
    }

    /// <summary>
    /// 根据appid订单编号获得审批结果
    /// </summary>
    /// <param name="appid">订单编号</param>
    /// <returns></returns>
    [WebMethod(Description = "根据appid订单编号获得审批结果")]
    public string GetApprovalResult(string appid)
    {
        LogManage.addLogErr("GetApprovalResult", appid);
        return SerialBLL.Instance.GetApprovalResult(appid);
    }

    ///// <summary>
    ///// 更新涉密成果信息
    ///// </summary>
    ///// <param name="rsName">成果名称</param>
    ///// <param name="applyType">成果种类</param>
    ///// <param name="rsRange">成果范围</param>
    ///// <param name="rsJd">成果精度</param>
    ///// <param name="rsCount">成果数量</param>
    ///// <param name="iid">业务编号</param>
    ///// <returns></returns>
    //[WebMethod(Description = "根据iid更新涉密成果数据信息")]
    //public string UpdateRsInfo(string rsName, string applyType, string rsRange, string rsJd, string rsCount, string iid)
    //{
    //    return SerialInstance.Instance.UpdateRsInfo(rsName, applyType, rsRange, rsJd, rsCount, iid);
    //}

    /// <summary>
    /// 更新涉密成果数据信息
    /// </summary>
    /// <param name="appId">订单编号</param>
    /// <param name="userid">用户ID</param>
    /// <param name="iid">业务编号</param>
    /// <param name="summary">概要信息（json字符串格式为:[{"RsName":"成果资料名称1","ApplyType":"成果种类","RsRange":"成果范围","RsJd":"成果精度","RsCount":"1"},{"RsName":"成果资料名称2","ApplyType":"成果种类","RsRange":"成果范围","RsJd":"成果精度","RsCount":"2"}]）</param>
    /// <returns></returns>
    [WebMethod(Description = "根据iid更新涉密成果数据信息")]
    public string UpdateRsInfo(string appId, string userid, string iid, string summary)
    {
        //LogManage.addLogErr("UpdateRsInfo", appId + " " + userid + " " + iid + " " + summary + " ");
        return SerialBLL.Instance.GetXmlStr(appId, userid, iid, summary);
    }
    /// <summary>
    /// 根据iid删除案件 删除申请表、xt_submitinfo、附件表
    /// </summary>
    /// <param name="iid">案件编号</param>
    /// <returns></returns>
    [WebMethod(Description = "根据案件iid,删除申请数据")]
    public string DeleteInfo(string iid)
    {
        string tempR = "";
        LogManage.addLogErr("DeleteInfo", iid);
        tempR= SerialBLL.Instance.DeleteInfo(iid);
        if (tempR == "<string>1</string>") {
            return "成功";
        }
        else {
            return "失败";
        }
       
    }
}